<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="container.css">
    <script type="text/javascript" src="yahoo-dom-event.js"></script>
    <script type="text/javascript" src="container-min.js"></script>
  </head>

  <body class="yui-skin-sam">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="title"></td></tr>
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>

      <tr>
        <td width="100%">
          <table cellpadding="1" border="0" width="100%">
            <tr>
              <td class="headerItem" width="20%">Current file:</td>
              <td class="headerValue" width="80%"><a href="index.html"></a>/<a href="home.html">home</a>/<a href="home_paulo.html">paulo</a>/<a href="home_paulo_Downloads.html">Downloads</a>/<a href="home_paulo_Downloads_yii.html">yii</a>/<a href="home_paulo_Downloads_yii_framework.html">framework</a>/<a href="home_paulo_Downloads_yii_framework_base.html">base</a>/<a href="home_paulo_Downloads_yii_framework_base_CComponent.php.html">CComponent.php</a></td>
            </tr>
            <tr>
              <td class="legendItem" width="20%">Legend:</td>
              <td class="legendValue" width="80%">
                <span class="legendCov">executed</span>
                <span class="legendNoCov">not executed</span>
                <span class="legendDeadCode">dead code</span>
              </td>
            </tr>
          </table>
        </td>
      </tr>

      <tr>
        <td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td>
      </tr>
    </table>

    <br />

    <center>
      <table width="90%" cellpadding="2" cellspacing="1" border="0">
        <tr>
          <td class="tableHead" width="30%">&nbsp;</td>
          <td class="tableHead" colspan="10">Coverage</td>
        </tr>
        <tr>
          <td class="tableHead">&nbsp;</td>
          <td class="tableHead" colspan="3">Classes</td>
          <td class="tableHead" colspan="4">Functions / Methods</td>
          <td class="tableHead" colspan="3">Lines</td>
        </tr>
        <tr>
          <td class="coverItem">Total</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="33" height="10" alt="33.33%"><img src="snow.png" width="67" height="10" alt="33.33%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">33.33%</td>
          <td class="coverNumLo">1 / 3</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 25</td>
          <td class="crap"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 190</td>
        </tr>

        <tr>
          <td class="tableHead" colspan="11">&nbsp;</td>
        </tr>
        <tr>
          <td class="coverItem"><b><a href="#90">CComponent</a></b></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 24</td>
          <td class="crap"></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 188</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#108">__get($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">132</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 20</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#148">__set($name,$value)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">132</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 21</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#184">__isset($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">132</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 17</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#215">__unset($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">132</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 23</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#254">__call($name,$parameters)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">56</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 11</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#277">asa($behavior)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#297">attachBehaviors($behaviors)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 3</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#307">detachBehaviors()</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">12</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 7</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#328">attachBehavior($name,$behavior)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 5</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#344">detachBehavior($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 7</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#359">enableBehaviors()</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">12</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 6</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#372">disableBehaviors()</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">12</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 6</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#388">enableBehavior($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 3</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#400">disableBehavior($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 3</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#415">hasProperty($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#428">canGetProperty($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">2</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#441">canSetProperty($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">2</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#453">hasEvent($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#463">hasEventHandler($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#475">getEventHandlers($name)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">12</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 8</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#521">attachEventHandler($name,$handler)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">2</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#534">detachEventHandler($name,$handler)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 3</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#550">raiseEvent($name,$event)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">156</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 30</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#611">evaluateExpression($_expression_,$_data_=array()</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">6</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 6</td>
        </tr>

        <tr>
          <td class="coverItem"><b><a href="#641">CEvent</a></b></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap"></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#657">__construct($sender=null)</a></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 1</td>
          <td class="crap">2</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="scarlet_red.png" width="0" height="10" alt="0.00%"><img src="snow.png" width="100" height="10" alt="0.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerLo">0.00%</td>
          <td class="coverNumLo">0 / 2</td>
        </tr>

        <tr>
          <td class="coverItem"><b><a href="#686">CEnumerable</a></b></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="chameleon.png" width="100" height="10" alt="100.00%"><img src="snow.png" width="0" height="10" alt="100.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="snow.png" width="100" height="10" alt="&nbsp;"><img src="snow.png" width="0" height="10" alt="&nbsp;"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerNone">&nbsp;</td>
          <td class="coverNumNone">&nbsp;</td>
          <td class="crap"></td>
          <td class="coverBar" align="center" width="100">
            <table border="0" cellspacing="0" cellpadding="1">
              <tr>
                <td class="coverBarOutline"><img src="chameleon.png" width="100" height="10" alt="100.00%"><img src="snow.png" width="0" height="10" alt="100.00%"></td>
              </tr>
            </table>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">0 / 0</td>
        </tr>


      </table>
    </center>

    <br />

    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td><br /></td>
      </tr>
      <tr>
        <td>
<pre class="source">
<span class="lineNum" id="container1"><a name="1"></a><a href="#1" id="line1">       1</a> </span>                : &lt;?php                                                                                                                                    
<span class="lineNum" id="container2"><a name="2"></a><a href="#2" id="line2">       2</a> </span>                : /**                                                                                                                                      
<span class="lineNum" id="container3"><a name="3"></a><a href="#3" id="line3">       3</a> </span>                :  * This file contains the foundation classes for component-based and event-driven programming.                                           
<span class="lineNum" id="container4"><a name="4"></a><a href="#4" id="line4">       4</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container5"><a name="5"></a><a href="#5" id="line5">       5</a> </span>                :  * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;                                                                                               
<span class="lineNum" id="container6"><a name="6"></a><a href="#6" id="line6">       6</a> </span>                :  * @link http://www.yiiframework.com/                                                                                                    
<span class="lineNum" id="container7"><a name="7"></a><a href="#7" id="line7">       7</a> </span>                :  * @copyright Copyright &amp;copy; 2008-2010 Yii Software LLC                                                                                
<span class="lineNum" id="container8"><a name="8"></a><a href="#8" id="line8">       8</a> </span>                :  * @license http://www.yiiframework.com/license/                                                                                         
<span class="lineNum" id="container9"><a name="9"></a><a href="#9" id="line9">       9</a> </span>                :  */                                                                                                                                      
<span class="lineNum" id="container10"><a name="10"></a><a href="#10" id="line10">      10</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container11"><a name="11"></a><a href="#11" id="line11">      11</a> </span>                : /**                                                                                                                                      
<span class="lineNum" id="container12"><a name="12"></a><a href="#12" id="line12">      12</a> </span>                :  * CComponent is the base class for all components.                                                                                      
<span class="lineNum" id="container13"><a name="13"></a><a href="#13" id="line13">      13</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container14"><a name="14"></a><a href="#14" id="line14">      14</a> </span>                :  * CComponent implements the protocol of defining, using properties and events.                                                          
<span class="lineNum" id="container15"><a name="15"></a><a href="#15" id="line15">      15</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container16"><a name="16"></a><a href="#16" id="line16">      16</a> </span>                :  * A property is defined by a getter method, and/or a setter method.                                                                     
<span class="lineNum" id="container17"><a name="17"></a><a href="#17" id="line17">      17</a> </span>                :  * Properties can be accessed in the way like accessing normal object members.                                                           
<span class="lineNum" id="container18"><a name="18"></a><a href="#18" id="line18">      18</a> </span>                :  * Reading or writing a property will cause the invocation of the corresponding                                                          
<span class="lineNum" id="container19"><a name="19"></a><a href="#19" id="line19">      19</a> </span>                :  * getter or setter method, e.g                                                                                                          
<span class="lineNum" id="container20"><a name="20"></a><a href="#20" id="line20">      20</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container21"><a name="21"></a><a href="#21" id="line21">      21</a> </span>                :  * $a=$component-&gt;text;     // equivalent to $a=$component-&gt;getText();                                                                   
<span class="lineNum" id="container22"><a name="22"></a><a href="#22" id="line22">      22</a> </span>                :  * $component-&gt;text='abc';  // equivalent to $component-&gt;setText('abc');                                                                 
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23">      23</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24">      24</a> </span>                :  * The signatures of getter and setter methods are as follows,                                                                           
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :  * // getter, defines a readable property 'text'                                                                                         
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27">      27</a> </span>                :  * public function getText() { ... }                                                                                                     
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28">      28</a> </span>                :  * // setter, defines a writable property 'text' with $value to be set to the property                                                   
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29">      29</a> </span>                :  * public function setText($value) { ... }                                                                                               
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30">      30</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span>                :  * An event is defined by the presence of a method whose name starts with 'on'.                                                          
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33">      33</a> </span>                :  * The event name is the method name. When an event is raised, functions                                                                 
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34">      34</a> </span>                :  * (called event handlers) attached to the event will be invoked automatically.                                                          
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </span>                :  * An event can be raised by calling {@link raiseEvent} method, upon which                                                               
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37">      37</a> </span>                :  * the attached event handlers will be invoked automatically in the order they                                                           
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38">      38</a> </span>                :  * are attached to the event. Event handlers must have the following signature,                                                          
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39">      39</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40">      40</a> </span>                :  * function eventHandler($event) { ... }                                                                                                 
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41">      41</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42">      42</a> </span>                :  * where $event includes parameters associated with the event.                                                                           
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43">      43</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44">      44</a> </span>                :  * To attach an event handler to an event, see {@link attachEventHandler}.                                                               
<span class="lineNum" id="container45"><a name="45"></a><a href="#45" id="line45">      45</a> </span>                :  * You can also use the following syntax:                                                                                                
<span class="lineNum" id="container46"><a name="46"></a><a href="#46" id="line46">      46</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container47"><a name="47"></a><a href="#47" id="line47">      47</a> </span>                :  * $component-&gt;onClick=$callback;    // or $component-&gt;onClick-&gt;add($callback);                                                          
<span class="lineNum" id="container48"><a name="48"></a><a href="#48" id="line48">      48</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container49"><a name="49"></a><a href="#49" id="line49">      49</a> </span>                :  * where $callback refers to a valid PHP callback. Below we show some callback examples:                                                 
<span class="lineNum" id="container50"><a name="50"></a><a href="#50" id="line50">      50</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container51"><a name="51"></a><a href="#51" id="line51">      51</a> </span>                :  * 'handleOnClick'                   // handleOnClick() is a global function                                                             
<span class="lineNum" id="container52"><a name="52"></a><a href="#52" id="line52">      52</a> </span>                :  * array($object,'handleOnClick')    // using $object-&gt;handleOnClick()                                                                   
<span class="lineNum" id="container53"><a name="53"></a><a href="#53" id="line53">      53</a> </span>                :  * array('Page','handleOnClick')     // using Page::handleOnClick()                                                                      
<span class="lineNum" id="container54"><a name="54"></a><a href="#54" id="line54">      54</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container55"><a name="55"></a><a href="#55" id="line55">      55</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container56"><a name="56"></a><a href="#56" id="line56">      56</a> </span>                :  * To raise an event, use {@link raiseEvent}. The on-method defining an event is                                                         
<span class="lineNum" id="container57"><a name="57"></a><a href="#57" id="line57">      57</a> </span>                :  * commonly written like the following:                                                                                                  
<span class="lineNum" id="container58"><a name="58"></a><a href="#58" id="line58">      58</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container59"><a name="59"></a><a href="#59" id="line59">      59</a> </span>                :  * public function onClick($event)                                                                                                       
<span class="lineNum" id="container60"><a name="60"></a><a href="#60" id="line60">      60</a> </span>                :  * {                                                                                                                                     
<span class="lineNum" id="container61"><a name="61"></a><a href="#61" id="line61">      61</a> </span>                :  *     $this-&gt;raiseEvent('onClick',$event);                                                                                              
<span class="lineNum" id="container62"><a name="62"></a><a href="#62" id="line62">      62</a> </span>                :  * }                                                                                                                                     
<span class="lineNum" id="container63"><a name="63"></a><a href="#63" id="line63">      63</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container64"><a name="64"></a><a href="#64" id="line64">      64</a> </span>                :  * where &lt;code&gt;$event&lt;/code&gt; is an instance of {@link CEvent} or its child class.                                                        
<span class="lineNum" id="container65"><a name="65"></a><a href="#65" id="line65">      65</a> </span>                :  * One can then raise the event by calling the on-method instead of {@link raiseEvent} directly.                                         
<span class="lineNum" id="container66"><a name="66"></a><a href="#66" id="line66">      66</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container67"><a name="67"></a><a href="#67" id="line67">      67</a> </span>                :  * Both property names and event names are case-insensitive.                                                                             
<span class="lineNum" id="container68"><a name="68"></a><a href="#68" id="line68">      68</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container69"><a name="69"></a><a href="#69" id="line69">      69</a> </span>                :  * Starting from version 1.0.2, CComponent supports behaviors. A behavior is an                                                          
<span class="lineNum" id="container70"><a name="70"></a><a href="#70" id="line70">      70</a> </span>                :  * instance of {@link IBehavior} which is attached to a component. The methods of                                                        
<span class="lineNum" id="container71"><a name="71"></a><a href="#71" id="line71">      71</a> </span>                :  * the behavior can be invoked as if they belong to the component. Multiple behaviors                                                    
<span class="lineNum" id="container72"><a name="72"></a><a href="#72" id="line72">      72</a> </span>                :  * can be attached to the same component.                                                                                                
<span class="lineNum" id="container73"><a name="73"></a><a href="#73" id="line73">      73</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container74"><a name="74"></a><a href="#74" id="line74">      74</a> </span>                :  * To attach a behavior to a component, call {@link attachBehavior}; and to detach the behavior                                          
<span class="lineNum" id="container75"><a name="75"></a><a href="#75" id="line75">      75</a> </span>                :  * from the component, call {@link detachBehavior}.                                                                                      
<span class="lineNum" id="container76"><a name="76"></a><a href="#76" id="line76">      76</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container77"><a name="77"></a><a href="#77" id="line77">      77</a> </span>                :  * A behavior can be temporarily enabled or disabled by calling {@link enableBehavior}                                                   
<span class="lineNum" id="container78"><a name="78"></a><a href="#78" id="line78">      78</a> </span>                :  * or {@link disableBehavior}, respectively. When disabled, the behavior methods cannot                                                  
<span class="lineNum" id="container79"><a name="79"></a><a href="#79" id="line79">      79</a> </span>                :  * be invoked via the component.                                                                                                         
<span class="lineNum" id="container80"><a name="80"></a><a href="#80" id="line80">      80</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container81"><a name="81"></a><a href="#81" id="line81">      81</a> </span>                :  * Starting from version 1.1.0, a behavior's properties (either its public member variables or                                           
<span class="lineNum" id="container82"><a name="82"></a><a href="#82" id="line82">      82</a> </span>                :  * its properties defined via getters and/or setters) can be accessed through the component it                                           
<span class="lineNum" id="container83"><a name="83"></a><a href="#83" id="line83">      83</a> </span>                :  * is attached to.                                                                                                                       
<span class="lineNum" id="container84"><a name="84"></a><a href="#84" id="line84">      84</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container85"><a name="85"></a><a href="#85" id="line85">      85</a> </span>                :  * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;                                                                                               
<span class="lineNum" id="container86"><a name="86"></a><a href="#86" id="line86">      86</a> </span>                :  * @version $Id: CComponent.php 2639 2010-11-11 16:12:42Z qiang.xue $                                                                    
<span class="lineNum" id="container87"><a name="87"></a><a href="#87" id="line87">      87</a> </span>                :  * @package system.base                                                                                                                  
<span class="lineNum" id="container88"><a name="88"></a><a href="#88" id="line88">      88</a> </span>                :  * @since 1.0                                                                                                                            
<span class="lineNum" id="container89"><a name="89"></a><a href="#89" id="line89">      89</a> </span>                :  */                                                                                                                                      
<span class="lineNum" id="container90"><a name="90"></a><a href="#90" id="line90">      90</a> </span>                : class CComponent                                                                                                                         
<span class="lineNum" id="container91"><a name="91"></a><a href="#91" id="line91">      91</a> </span>                : {                                                                                                                                        
<span class="lineNum" id="container92"><a name="92"></a><a href="#92" id="line92">      92</a> </span>                :     private $_e;                                                                                                                         
<span class="lineNum" id="container93"><a name="93"></a><a href="#93" id="line93">      93</a> </span>                :     private $_m;                                                                                                                         
<span class="lineNum" id="container94"><a name="94"></a><a href="#94" id="line94">      94</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container95"><a name="95"></a><a href="#95" id="line95">      95</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container96"><a name="96"></a><a href="#96" id="line96">      96</a> </span>                :      * Returns a property value, an event handler list or a behavior based on its name.                                                  
<span class="lineNum" id="container97"><a name="97"></a><a href="#97" id="line97">      97</a> </span>                :      * Do not call this method. This is a PHP magic method that we override                                                              
<span class="lineNum" id="container98"><a name="98"></a><a href="#98" id="line98">      98</a> </span>                :      * to allow using the following syntax to read a property or obtain event handlers:                                                  
<span class="lineNum" id="container99"><a name="99"></a><a href="#99" id="line99">      99</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container100"><a name="100"></a><a href="#100" id="line100">     100</a> </span>                :      * $value=$component-&gt;propertyName;                                                                                                  
<span class="lineNum" id="container101"><a name="101"></a><a href="#101" id="line101">     101</a> </span>                :      * $handlers=$component-&gt;eventName;                                                                                                  
<span class="lineNum" id="container102"><a name="102"></a><a href="#102" id="line102">     102</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container103"><a name="103"></a><a href="#103" id="line103">     103</a> </span>                :      * @param string $name the property name or event name                                                                               
<span class="lineNum" id="container104"><a name="104"></a><a href="#104" id="line104">     104</a> </span>                :      * @return mixed the property value, event handlers attached to the event, or the named behavior (since version 1.0.2)               
<span class="lineNum" id="container105"><a name="105"></a><a href="#105" id="line105">     105</a> </span>                :      * @throws CException if the property or event is not defined                                                                        
<span class="lineNum" id="container106"><a name="106"></a><a href="#106" id="line106">     106</a> </span>                :      * @see __set                                                                                                                        
<span class="lineNum" id="container107"><a name="107"></a><a href="#107" id="line107">     107</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container108"><a name="108"></a><a href="#108" id="line108">     108</a> </span>                :     public function __get($name)                                                                                                         
<span class="lineNum" id="container109"><a name="109"></a><a href="#109" id="line109">     109</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container110"><a name="110"></a><a href="#110" id="line110">     110</a> </span><span class="lineNoCov">              0 :         $getter='get'.$name;                                                                                                             </span>
<span class="lineNum" id="container111"><a name="111"></a><a href="#111" id="line111">     111</a> </span><span class="lineNoCov">              0 :         if(method_exists($this,$getter))                                                                                                 </span>
<span class="lineNum" id="container112"><a name="112"></a><a href="#112" id="line112">     112</a> </span><span class="lineNoCov">              0 :             return $this-&gt;$getter();                                                                                                     </span>
<span class="lineNum" id="container113"><a name="113"></a><a href="#113" id="line113">     113</a> </span><span class="lineNoCov">              0 :         else if(strncasecmp($name,'on',2)===0 &amp;&amp; method_exists($this,$name))                                                             </span>
<span class="lineNum" id="container114"><a name="114"></a><a href="#114" id="line114">     114</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container115"><a name="115"></a><a href="#115" id="line115">     115</a> </span>                :             // duplicating getEventHandlers() here for performance                                                                       
<span class="lineNum" id="container116"><a name="116"></a><a href="#116" id="line116">     116</a> </span><span class="lineNoCov">              0 :             $name=strtolower($name);                                                                                                     </span>
<span class="lineNum" id="container117"><a name="117"></a><a href="#117" id="line117">     117</a> </span><span class="lineNoCov">              0 :             if(!isset($this-&gt;_e[$name]))                                                                                                 </span>
<span class="lineNum" id="container118"><a name="118"></a><a href="#118" id="line118">     118</a> </span><span class="lineNoCov">              0 :                 $this-&gt;_e[$name]=new CList;                                                                                              </span>
<span class="lineNum" id="container119"><a name="119"></a><a href="#119" id="line119">     119</a> </span><span class="lineNoCov">              0 :             return $this-&gt;_e[$name];                                                                                                     </span>
<span class="lineNum" id="container120"><a name="120"></a><a href="#120" id="line120">     120</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container121"><a name="121"></a><a href="#121" id="line121">     121</a> </span><span class="lineNoCov">              0 :         else if(isset($this-&gt;_m[$name]))                                                                                                 </span>
<span class="lineNum" id="container122"><a name="122"></a><a href="#122" id="line122">     122</a> </span><span class="lineNoCov">              0 :             return $this-&gt;_m[$name];                                                                                                     </span>
<span class="lineNum" id="container123"><a name="123"></a><a href="#123" id="line123">     123</a> </span><span class="lineNoCov">              0 :         else if(is_array($this-&gt;_m))                                                                                                     </span>
<span class="lineNum" id="container124"><a name="124"></a><a href="#124" id="line124">     124</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container125"><a name="125"></a><a href="#125" id="line125">     125</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $object)                                                                                                </span>
<span class="lineNum" id="container126"><a name="126"></a><a href="#126" id="line126">     126</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container127"><a name="127"></a><a href="#127" id="line127">     127</a> </span><span class="lineNoCov">              0 :                 if($object-&gt;getEnabled() &amp;&amp; (property_exists($object,$name) || $object-&gt;canGetProperty($name)))                          </span>
<span class="lineNum" id="container128"><a name="128"></a><a href="#128" id="line128">     128</a> </span><span class="lineNoCov">              0 :                     return $object-&gt;$name;                                                                                               </span>
<span class="lineNum" id="container129"><a name="129"></a><a href="#129" id="line129">     129</a> </span><span class="lineNoCov">              0 :             }                                                                                                                            </span>
<span class="lineNum" id="container130"><a name="130"></a><a href="#130" id="line130">     130</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container131"><a name="131"></a><a href="#131" id="line131">     131</a> </span><span class="lineNoCov">              0 :         throw new CException(Yii::t('yii','Property &quot;{class}.{property}&quot; is not defined.',                                               </span>
<span class="lineNum" id="container132"><a name="132"></a><a href="#132" id="line132">     132</a> </span><span class="lineNoCov">              0 :             array('{class}'=&gt;get_class($this), '{property}'=&gt;$name)));                                                                   </span>
<span class="lineNum" id="container133"><a name="133"></a><a href="#133" id="line133">     133</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container134"><a name="134"></a><a href="#134" id="line134">     134</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container135"><a name="135"></a><a href="#135" id="line135">     135</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container136"><a name="136"></a><a href="#136" id="line136">     136</a> </span>                :      * Sets value of a component property.                                                                                               
<span class="lineNum" id="container137"><a name="137"></a><a href="#137" id="line137">     137</a> </span>                :      * Do not call this method. This is a PHP magic method that we override                                                              
<span class="lineNum" id="container138"><a name="138"></a><a href="#138" id="line138">     138</a> </span>                :      * to allow using the following syntax to set a property or attach an event handler                                                  
<span class="lineNum" id="container139"><a name="139"></a><a href="#139" id="line139">     139</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container140"><a name="140"></a><a href="#140" id="line140">     140</a> </span>                :      * $this-&gt;propertyName=$value;                                                                                                       
<span class="lineNum" id="container141"><a name="141"></a><a href="#141" id="line141">     141</a> </span>                :      * $this-&gt;eventName=$callback;                                                                                                       
<span class="lineNum" id="container142"><a name="142"></a><a href="#142" id="line142">     142</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container143"><a name="143"></a><a href="#143" id="line143">     143</a> </span>                :      * @param string $name the property name or the event name                                                                           
<span class="lineNum" id="container144"><a name="144"></a><a href="#144" id="line144">     144</a> </span>                :      * @param mixed $value the property value or callback                                                                                
<span class="lineNum" id="container145"><a name="145"></a><a href="#145" id="line145">     145</a> </span>                :      * @throws CException if the property/event is not defined or the property is read only.                                             
<span class="lineNum" id="container146"><a name="146"></a><a href="#146" id="line146">     146</a> </span>                :      * @see __get                                                                                                                        
<span class="lineNum" id="container147"><a name="147"></a><a href="#147" id="line147">     147</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container148"><a name="148"></a><a href="#148" id="line148">     148</a> </span>                :     public function __set($name,$value)                                                                                                  
<span class="lineNum" id="container149"><a name="149"></a><a href="#149" id="line149">     149</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container150"><a name="150"></a><a href="#150" id="line150">     150</a> </span><span class="lineNoCov">              0 :         $setter='set'.$name;                                                                                                             </span>
<span class="lineNum" id="container151"><a name="151"></a><a href="#151" id="line151">     151</a> </span><span class="lineNoCov">              0 :         if(method_exists($this,$setter))                                                                                                 </span>
<span class="lineNum" id="container152"><a name="152"></a><a href="#152" id="line152">     152</a> </span><span class="lineNoCov">              0 :             return $this-&gt;$setter($value);                                                                                               </span>
<span class="lineNum" id="container153"><a name="153"></a><a href="#153" id="line153">     153</a> </span><span class="lineNoCov">              0 :         else if(strncasecmp($name,'on',2)===0 &amp;&amp; method_exists($this,$name))                                                             </span>
<span class="lineNum" id="container154"><a name="154"></a><a href="#154" id="line154">     154</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container155"><a name="155"></a><a href="#155" id="line155">     155</a> </span>                :             // duplicating getEventHandlers() here for performance                                                                       
<span class="lineNum" id="container156"><a name="156"></a><a href="#156" id="line156">     156</a> </span><span class="lineNoCov">              0 :             $name=strtolower($name);                                                                                                     </span>
<span class="lineNum" id="container157"><a name="157"></a><a href="#157" id="line157">     157</a> </span><span class="lineNoCov">              0 :             if(!isset($this-&gt;_e[$name]))                                                                                                 </span>
<span class="lineNum" id="container158"><a name="158"></a><a href="#158" id="line158">     158</a> </span><span class="lineNoCov">              0 :                 $this-&gt;_e[$name]=new CList;                                                                                              </span>
<span class="lineNum" id="container159"><a name="159"></a><a href="#159" id="line159">     159</a> </span><span class="lineNoCov">              0 :             return $this-&gt;_e[$name]-&gt;add($value);                                                                                        </span>
<span class="lineNum" id="container160"><a name="160"></a><a href="#160" id="line160">     160</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container161"><a name="161"></a><a href="#161" id="line161">     161</a> </span><span class="lineNoCov">              0 :         else if(is_array($this-&gt;_m))                                                                                                     </span>
<span class="lineNum" id="container162"><a name="162"></a><a href="#162" id="line162">     162</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container163"><a name="163"></a><a href="#163" id="line163">     163</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $object)                                                                                                </span>
<span class="lineNum" id="container164"><a name="164"></a><a href="#164" id="line164">     164</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container165"><a name="165"></a><a href="#165" id="line165">     165</a> </span><span class="lineNoCov">              0 :                 if($object-&gt;getEnabled() &amp;&amp; (property_exists($object,$name) || $object-&gt;canSetProperty($name)))                          </span>
<span class="lineNum" id="container166"><a name="166"></a><a href="#166" id="line166">     166</a> </span><span class="lineNoCov">              0 :                     return $object-&gt;$name=$value;                                                                                        </span>
<span class="lineNum" id="container167"><a name="167"></a><a href="#167" id="line167">     167</a> </span><span class="lineNoCov">              0 :             }                                                                                                                            </span>
<span class="lineNum" id="container168"><a name="168"></a><a href="#168" id="line168">     168</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container169"><a name="169"></a><a href="#169" id="line169">     169</a> </span><span class="lineNoCov">              0 :         if(method_exists($this,'get'.$name))                                                                                             </span>
<span class="lineNum" id="container170"><a name="170"></a><a href="#170" id="line170">     170</a> </span><span class="lineNoCov">              0 :             throw new CException(Yii::t('yii','Property &quot;{class}.{property}&quot; is read only.',                                             </span>
<span class="lineNum" id="container171"><a name="171"></a><a href="#171" id="line171">     171</a> </span><span class="lineNoCov">              0 :                 array('{class}'=&gt;get_class($this), '{property}'=&gt;$name)));                                                               </span>
<span class="lineNum" id="container172"><a name="172"></a><a href="#172" id="line172">     172</a> </span>                :         else                                                                                                                             
<span class="lineNum" id="container173"><a name="173"></a><a href="#173" id="line173">     173</a> </span><span class="lineNoCov">              0 :             throw new CException(Yii::t('yii','Property &quot;{class}.{property}&quot; is not defined.',                                           </span>
<span class="lineNum" id="container174"><a name="174"></a><a href="#174" id="line174">     174</a> </span><span class="lineNoCov">              0 :                 array('{class}'=&gt;get_class($this), '{property}'=&gt;$name)));                                                               </span>
<span class="lineNum" id="container175"><a name="175"></a><a href="#175" id="line175">     175</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container176"><a name="176"></a><a href="#176" id="line176">     176</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container177"><a name="177"></a><a href="#177" id="line177">     177</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container178"><a name="178"></a><a href="#178" id="line178">     178</a> </span>                :      * Checks if a property value is null.                                                                                               
<span class="lineNum" id="container179"><a name="179"></a><a href="#179" id="line179">     179</a> </span>                :      * Do not call this method. This is a PHP magic method that we override                                                              
<span class="lineNum" id="container180"><a name="180"></a><a href="#180" id="line180">     180</a> </span>                :      * to allow using isset() to detect if a component property is set or not.                                                           
<span class="lineNum" id="container181"><a name="181"></a><a href="#181" id="line181">     181</a> </span>                :      * @param string $name the property name or the event name                                                                           
<span class="lineNum" id="container182"><a name="182"></a><a href="#182" id="line182">     182</a> </span>                :      * @since 1.0.1                                                                                                                      
<span class="lineNum" id="container183"><a name="183"></a><a href="#183" id="line183">     183</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container184"><a name="184"></a><a href="#184" id="line184">     184</a> </span>                :     public function __isset($name)                                                                                                       
<span class="lineNum" id="container185"><a name="185"></a><a href="#185" id="line185">     185</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container186"><a name="186"></a><a href="#186" id="line186">     186</a> </span><span class="lineNoCov">              0 :         $getter='get'.$name;                                                                                                             </span>
<span class="lineNum" id="container187"><a name="187"></a><a href="#187" id="line187">     187</a> </span><span class="lineNoCov">              0 :         if(method_exists($this,$getter))                                                                                                 </span>
<span class="lineNum" id="container188"><a name="188"></a><a href="#188" id="line188">     188</a> </span><span class="lineNoCov">              0 :             return $this-&gt;$getter()!==null;                                                                                              </span>
<span class="lineNum" id="container189"><a name="189"></a><a href="#189" id="line189">     189</a> </span><span class="lineNoCov">              0 :         else if(strncasecmp($name,'on',2)===0 &amp;&amp; method_exists($this,$name))                                                             </span>
<span class="lineNum" id="container190"><a name="190"></a><a href="#190" id="line190">     190</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container191"><a name="191"></a><a href="#191" id="line191">     191</a> </span><span class="lineNoCov">              0 :             $name=strtolower($name);                                                                                                     </span>
<span class="lineNum" id="container192"><a name="192"></a><a href="#192" id="line192">     192</a> </span><span class="lineNoCov">              0 :             return isset($this-&gt;_e[$name]) &amp;&amp; $this-&gt;_e[$name]-&gt;getCount();                                                              </span>
<span class="lineNum" id="container193"><a name="193"></a><a href="#193" id="line193">     193</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container194"><a name="194"></a><a href="#194" id="line194">     194</a> </span><span class="lineNoCov">              0 :         else if(is_array($this-&gt;_m))                                                                                                     </span>
<span class="lineNum" id="container195"><a name="195"></a><a href="#195" id="line195">     195</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container196"><a name="196"></a><a href="#196" id="line196">     196</a> </span><span class="lineNoCov">              0 :              if(isset($this-&gt;_m[$name]))                                                                                                 </span>
<span class="lineNum" id="container197"><a name="197"></a><a href="#197" id="line197">     197</a> </span><span class="lineNoCov">              0 :                  return true;                                                                                                            </span>
<span class="lineNum" id="container198"><a name="198"></a><a href="#198" id="line198">     198</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $object)                                                                                                </span>
<span class="lineNum" id="container199"><a name="199"></a><a href="#199" id="line199">     199</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container200"><a name="200"></a><a href="#200" id="line200">     200</a> </span><span class="lineNoCov">              0 :                 if($object-&gt;getEnabled() &amp;&amp; (property_exists($object,$name) || $object-&gt;canGetProperty($name)))                          </span>
<span class="lineNum" id="container201"><a name="201"></a><a href="#201" id="line201">     201</a> </span><span class="lineNoCov">              0 :                     return true;                                                                                                         </span>
<span class="lineNum" id="container202"><a name="202"></a><a href="#202" id="line202">     202</a> </span><span class="lineNoCov">              0 :             }                                                                                                                            </span>
<span class="lineNum" id="container203"><a name="203"></a><a href="#203" id="line203">     203</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container204"><a name="204"></a><a href="#204" id="line204">     204</a> </span><span class="lineNoCov">              0 :         return false;                                                                                                                    </span>
<span class="lineNum" id="container205"><a name="205"></a><a href="#205" id="line205">     205</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container206"><a name="206"></a><a href="#206" id="line206">     206</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container207"><a name="207"></a><a href="#207" id="line207">     207</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container208"><a name="208"></a><a href="#208" id="line208">     208</a> </span>                :      * Sets a component property to be null.                                                                                             
<span class="lineNum" id="container209"><a name="209"></a><a href="#209" id="line209">     209</a> </span>                :      * Do not call this method. This is a PHP magic method that we override                                                              
<span class="lineNum" id="container210"><a name="210"></a><a href="#210" id="line210">     210</a> </span>                :      * to allow using unset() to set a component property to be null.                                                                    
<span class="lineNum" id="container211"><a name="211"></a><a href="#211" id="line211">     211</a> </span>                :      * @param string $name the property name or the event name                                                                           
<span class="lineNum" id="container212"><a name="212"></a><a href="#212" id="line212">     212</a> </span>                :      * @throws CException if the property is read only.                                                                                  
<span class="lineNum" id="container213"><a name="213"></a><a href="#213" id="line213">     213</a> </span>                :      * @since 1.0.1                                                                                                                      
<span class="lineNum" id="container214"><a name="214"></a><a href="#214" id="line214">     214</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container215"><a name="215"></a><a href="#215" id="line215">     215</a> </span>                :     public function __unset($name)                                                                                                       
<span class="lineNum" id="container216"><a name="216"></a><a href="#216" id="line216">     216</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container217"><a name="217"></a><a href="#217" id="line217">     217</a> </span><span class="lineNoCov">              0 :         $setter='set'.$name;                                                                                                             </span>
<span class="lineNum" id="container218"><a name="218"></a><a href="#218" id="line218">     218</a> </span><span class="lineNoCov">              0 :         if(method_exists($this,$setter))                                                                                                 </span>
<span class="lineNum" id="container219"><a name="219"></a><a href="#219" id="line219">     219</a> </span><span class="lineNoCov">              0 :             $this-&gt;$setter(null);                                                                                                        </span>
<span class="lineNum" id="container220"><a name="220"></a><a href="#220" id="line220">     220</a> </span><span class="lineNoCov">              0 :         else if(strncasecmp($name,'on',2)===0 &amp;&amp; method_exists($this,$name))                                                             </span>
<span class="lineNum" id="container221"><a name="221"></a><a href="#221" id="line221">     221</a> </span><span class="lineNoCov">              0 :             unset($this-&gt;_e[strtolower($name)]);                                                                                         </span>
<span class="lineNum" id="container222"><a name="222"></a><a href="#222" id="line222">     222</a> </span><span class="lineNoCov">              0 :         else if(is_array($this-&gt;_m))                                                                                                     </span>
<span class="lineNum" id="container223"><a name="223"></a><a href="#223" id="line223">     223</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container224"><a name="224"></a><a href="#224" id="line224">     224</a> </span><span class="lineNoCov">              0 :             if(isset($this-&gt;_m[$name]))                                                                                                  </span>
<span class="lineNum" id="container225"><a name="225"></a><a href="#225" id="line225">     225</a> </span><span class="lineNoCov">              0 :                 $this-&gt;detachBehavior($name);                                                                                            </span>
<span class="lineNum" id="container226"><a name="226"></a><a href="#226" id="line226">     226</a> </span>                :             else                                                                                                                         
<span class="lineNum" id="container227"><a name="227"></a><a href="#227" id="line227">     227</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container228"><a name="228"></a><a href="#228" id="line228">     228</a> </span><span class="lineNoCov">              0 :                 foreach($this-&gt;_m as $object)                                                                                            </span>
<span class="lineNum" id="container229"><a name="229"></a><a href="#229" id="line229">     229</a> </span>                :                 {                                                                                                                        
<span class="lineNum" id="container230"><a name="230"></a><a href="#230" id="line230">     230</a> </span><span class="lineNoCov">              0 :                     if($object-&gt;getEnabled())                                                                                            </span>
<span class="lineNum" id="container231"><a name="231"></a><a href="#231" id="line231">     231</a> </span><span class="lineNoCov">              0 :                     {                                                                                                                    </span>
<span class="lineNum" id="container232"><a name="232"></a><a href="#232" id="line232">     232</a> </span><span class="lineNoCov">              0 :                         if(property_exists($object,$name))                                                                               </span>
<span class="lineNum" id="container233"><a name="233"></a><a href="#233" id="line233">     233</a> </span><span class="lineNoCov">              0 :                             return $object-&gt;$name=null;                                                                                  </span>
<span class="lineNum" id="container234"><a name="234"></a><a href="#234" id="line234">     234</a> </span><span class="lineNoCov">              0 :                         else if($object-&gt;canSetProperty($name))                                                                          </span>
<span class="lineNum" id="container235"><a name="235"></a><a href="#235" id="line235">     235</a> </span><span class="lineNoCov">              0 :                             return $object-&gt;$setter(null);                                                                               </span>
<span class="lineNum" id="container236"><a name="236"></a><a href="#236" id="line236">     236</a> </span><span class="lineNoCov">              0 :                     }                                                                                                                    </span>
<span class="lineNum" id="container237"><a name="237"></a><a href="#237" id="line237">     237</a> </span><span class="lineNoCov">              0 :                 }                                                                                                                        </span>
<span class="lineNum" id="container238"><a name="238"></a><a href="#238" id="line238">     238</a> </span>                :             }                                                                                                                            
<span class="lineNum" id="container239"><a name="239"></a><a href="#239" id="line239">     239</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container240"><a name="240"></a><a href="#240" id="line240">     240</a> </span><span class="lineNoCov">              0 :         else if(method_exists($this,'get'.$name))                                                                                        </span>
<span class="lineNum" id="container241"><a name="241"></a><a href="#241" id="line241">     241</a> </span><span class="lineNoCov">              0 :             throw new CException(Yii::t('yii','Property &quot;{class}.{property}&quot; is read only.',                                             </span>
<span class="lineNum" id="container242"><a name="242"></a><a href="#242" id="line242">     242</a> </span><span class="lineNoCov">              0 :                 array('{class}'=&gt;get_class($this), '{property}'=&gt;$name)));                                                               </span>
<span class="lineNum" id="container243"><a name="243"></a><a href="#243" id="line243">     243</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container244"><a name="244"></a><a href="#244" id="line244">     244</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container245"><a name="245"></a><a href="#245" id="line245">     245</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container246"><a name="246"></a><a href="#246" id="line246">     246</a> </span>                :      * Calls the named method which is not a class method.                                                                               
<span class="lineNum" id="container247"><a name="247"></a><a href="#247" id="line247">     247</a> </span>                :      * Do not call this method. This is a PHP magic method that we override                                                              
<span class="lineNum" id="container248"><a name="248"></a><a href="#248" id="line248">     248</a> </span>                :      * to implement the behavior feature.                                                                                                
<span class="lineNum" id="container249"><a name="249"></a><a href="#249" id="line249">     249</a> </span>                :      * @param string $name the method name                                                                                               
<span class="lineNum" id="container250"><a name="250"></a><a href="#250" id="line250">     250</a> </span>                :      * @param array $parameters method parameters                                                                                        
<span class="lineNum" id="container251"><a name="251"></a><a href="#251" id="line251">     251</a> </span>                :      * @return mixed the method return value                                                                                             
<span class="lineNum" id="container252"><a name="252"></a><a href="#252" id="line252">     252</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container253"><a name="253"></a><a href="#253" id="line253">     253</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container254"><a name="254"></a><a href="#254" id="line254">     254</a> </span>                :     public function __call($name,$parameters)                                                                                            
<span class="lineNum" id="container255"><a name="255"></a><a href="#255" id="line255">     255</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container256"><a name="256"></a><a href="#256" id="line256">     256</a> </span><span class="lineNoCov">              0 :         if($this-&gt;_m!==null)                                                                                                             </span>
<span class="lineNum" id="container257"><a name="257"></a><a href="#257" id="line257">     257</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container258"><a name="258"></a><a href="#258" id="line258">     258</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $object)                                                                                                </span>
<span class="lineNum" id="container259"><a name="259"></a><a href="#259" id="line259">     259</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container260"><a name="260"></a><a href="#260" id="line260">     260</a> </span><span class="lineNoCov">              0 :                 if($object-&gt;getEnabled() &amp;&amp; method_exists($object,$name))                                                                </span>
<span class="lineNum" id="container261"><a name="261"></a><a href="#261" id="line261">     261</a> </span><span class="lineNoCov">              0 :                     return call_user_func_array(array($object,$name),$parameters);                                                       </span>
<span class="lineNum" id="container262"><a name="262"></a><a href="#262" id="line262">     262</a> </span><span class="lineNoCov">              0 :             }                                                                                                                            </span>
<span class="lineNum" id="container263"><a name="263"></a><a href="#263" id="line263">     263</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container264"><a name="264"></a><a href="#264" id="line264">     264</a> </span><span class="lineNoCov">              0 :         if(class_exists('Closure', false) &amp;&amp; $this-&gt;$name instanceof Closure)                                                            </span>
<span class="lineNum" id="container265"><a name="265"></a><a href="#265" id="line265">     265</a> </span><span class="lineNoCov">              0 :             return call_user_func_array($this-&gt;$name, $parameters);                                                                      </span>
<span class="lineNum" id="container266"><a name="266"></a><a href="#266" id="line266">     266</a> </span><span class="lineNoCov">              0 :         throw new CException(Yii::t('yii','{class} does not have a method named &quot;{name}&quot;.',                                              </span>
<span class="lineNum" id="container267"><a name="267"></a><a href="#267" id="line267">     267</a> </span><span class="lineNoCov">              0 :             array('{class}'=&gt;get_class($this), '{name}'=&gt;$name)));                                                                       </span>
<span class="lineNum" id="container268"><a name="268"></a><a href="#268" id="line268">     268</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container269"><a name="269"></a><a href="#269" id="line269">     269</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container270"><a name="270"></a><a href="#270" id="line270">     270</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container271"><a name="271"></a><a href="#271" id="line271">     271</a> </span>                :      * Returns the named behavior object.                                                                                                
<span class="lineNum" id="container272"><a name="272"></a><a href="#272" id="line272">     272</a> </span>                :      * The name 'asa' stands for 'as a'.                                                                                                 
<span class="lineNum" id="container273"><a name="273"></a><a href="#273" id="line273">     273</a> </span>                :      * @param string $behavior the behavior name                                                                                         
<span class="lineNum" id="container274"><a name="274"></a><a href="#274" id="line274">     274</a> </span>                :      * @return IBehavior the behavior object, or null if the behavior does not exist                                                     
<span class="lineNum" id="container275"><a name="275"></a><a href="#275" id="line275">     275</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container276"><a name="276"></a><a href="#276" id="line276">     276</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container277"><a name="277"></a><a href="#277" id="line277">     277</a> </span>                :     public function asa($behavior)                                                                                                       
<span class="lineNum" id="container278"><a name="278"></a><a href="#278" id="line278">     278</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container279"><a name="279"></a><a href="#279" id="line279">     279</a> </span><span class="lineNoCov">              0 :         return isset($this-&gt;_m[$behavior]) ? $this-&gt;_m[$behavior] : null;                                                                </span>
<span class="lineNum" id="container280"><a name="280"></a><a href="#280" id="line280">     280</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container281"><a name="281"></a><a href="#281" id="line281">     281</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container282"><a name="282"></a><a href="#282" id="line282">     282</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container283"><a name="283"></a><a href="#283" id="line283">     283</a> </span>                :      * Attaches a list of behaviors to the component.                                                                                    
<span class="lineNum" id="container284"><a name="284"></a><a href="#284" id="line284">     284</a> </span>                :      * Each behavior is indexed by its name and should be an instance of                                                                 
<span class="lineNum" id="container285"><a name="285"></a><a href="#285" id="line285">     285</a> </span>                :      * {@link IBehavior}, a string specifying the behavior class, or an                                                                  
<span class="lineNum" id="container286"><a name="286"></a><a href="#286" id="line286">     286</a> </span>                :      * array of the following structure:                                                                                                 
<span class="lineNum" id="container287"><a name="287"></a><a href="#287" id="line287">     287</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container288"><a name="288"></a><a href="#288" id="line288">     288</a> </span>                :      * array(                                                                                                                            
<span class="lineNum" id="container289"><a name="289"></a><a href="#289" id="line289">     289</a> </span>                :      *     'class'=&gt;'path.to.BehaviorClass',                                                                                             
<span class="lineNum" id="container290"><a name="290"></a><a href="#290" id="line290">     290</a> </span>                :      *     'property1'=&gt;'value1',                                                                                                        
<span class="lineNum" id="container291"><a name="291"></a><a href="#291" id="line291">     291</a> </span>                :      *     'property2'=&gt;'value2',                                                                                                        
<span class="lineNum" id="container292"><a name="292"></a><a href="#292" id="line292">     292</a> </span>                :      * )                                                                                                                                 
<span class="lineNum" id="container293"><a name="293"></a><a href="#293" id="line293">     293</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container294"><a name="294"></a><a href="#294" id="line294">     294</a> </span>                :      * @param array $behaviors list of behaviors to be attached to the component                                                         
<span class="lineNum" id="container295"><a name="295"></a><a href="#295" id="line295">     295</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container296"><a name="296"></a><a href="#296" id="line296">     296</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container297"><a name="297"></a><a href="#297" id="line297">     297</a> </span>                :     public function attachBehaviors($behaviors)                                                                                          
<span class="lineNum" id="container298"><a name="298"></a><a href="#298" id="line298">     298</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container299"><a name="299"></a><a href="#299" id="line299">     299</a> </span><span class="lineNoCov">              0 :         foreach($behaviors as $name=&gt;$behavior)                                                                                          </span>
<span class="lineNum" id="container300"><a name="300"></a><a href="#300" id="line300">     300</a> </span><span class="lineNoCov">              0 :             $this-&gt;attachBehavior($name,$behavior);                                                                                      </span>
<span class="lineNum" id="container301"><a name="301"></a><a href="#301" id="line301">     301</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container302"><a name="302"></a><a href="#302" id="line302">     302</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container303"><a name="303"></a><a href="#303" id="line303">     303</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container304"><a name="304"></a><a href="#304" id="line304">     304</a> </span>                :      * Detaches all behaviors from the component.                                                                                        
<span class="lineNum" id="container305"><a name="305"></a><a href="#305" id="line305">     305</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container306"><a name="306"></a><a href="#306" id="line306">     306</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container307"><a name="307"></a><a href="#307" id="line307">     307</a> </span>                :     public function detachBehaviors()                                                                                                    
<span class="lineNum" id="container308"><a name="308"></a><a href="#308" id="line308">     308</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container309"><a name="309"></a><a href="#309" id="line309">     309</a> </span><span class="lineNoCov">              0 :         if($this-&gt;_m!==null)                                                                                                             </span>
<span class="lineNum" id="container310"><a name="310"></a><a href="#310" id="line310">     310</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container311"><a name="311"></a><a href="#311" id="line311">     311</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $name=&gt;$behavior)                                                                                       </span>
<span class="lineNum" id="container312"><a name="312"></a><a href="#312" id="line312">     312</a> </span><span class="lineNoCov">              0 :                 $this-&gt;detachBehavior($name);                                                                                            </span>
<span class="lineNum" id="container313"><a name="313"></a><a href="#313" id="line313">     313</a> </span><span class="lineNoCov">              0 :             $this-&gt;_m=null;                                                                                                              </span>
<span class="lineNum" id="container314"><a name="314"></a><a href="#314" id="line314">     314</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container315"><a name="315"></a><a href="#315" id="line315">     315</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container316"><a name="316"></a><a href="#316" id="line316">     316</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container317"><a name="317"></a><a href="#317" id="line317">     317</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container318"><a name="318"></a><a href="#318" id="line318">     318</a> </span>                :      * Attaches a behavior to this component.                                                                                            
<span class="lineNum" id="container319"><a name="319"></a><a href="#319" id="line319">     319</a> </span>                :      * This method will create the behavior object based on the given                                                                    
<span class="lineNum" id="container320"><a name="320"></a><a href="#320" id="line320">     320</a> </span>                :      * configuration. After that, the behavior object will be initialized                                                                
<span class="lineNum" id="container321"><a name="321"></a><a href="#321" id="line321">     321</a> </span>                :      * by calling its {@link IBehavior::attach} method.                                                                                  
<span class="lineNum" id="container322"><a name="322"></a><a href="#322" id="line322">     322</a> </span>                :      * @param string $name the behavior's name. It should uniquely identify this behavior.                                               
<span class="lineNum" id="container323"><a name="323"></a><a href="#323" id="line323">     323</a> </span>                :      * @param mixed $behavior the behavior configuration. This is passed as the first                                                    
<span class="lineNum" id="container324"><a name="324"></a><a href="#324" id="line324">     324</a> </span>                :      * parameter to {@link YiiBase::createComponent} to create the behavior object.                                                      
<span class="lineNum" id="container325"><a name="325"></a><a href="#325" id="line325">     325</a> </span>                :      * @return IBehavior the behavior object                                                                                             
<span class="lineNum" id="container326"><a name="326"></a><a href="#326" id="line326">     326</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container327"><a name="327"></a><a href="#327" id="line327">     327</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container328"><a name="328"></a><a href="#328" id="line328">     328</a> </span>                :     public function attachBehavior($name,$behavior)                                                                                      
<span class="lineNum" id="container329"><a name="329"></a><a href="#329" id="line329">     329</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container330"><a name="330"></a><a href="#330" id="line330">     330</a> </span><span class="lineNoCov">              0 :         if(!($behavior instanceof IBehavior))                                                                                            </span>
<span class="lineNum" id="container331"><a name="331"></a><a href="#331" id="line331">     331</a> </span><span class="lineNoCov">              0 :             $behavior=Yii::createComponent($behavior);                                                                                   </span>
<span class="lineNum" id="container332"><a name="332"></a><a href="#332" id="line332">     332</a> </span><span class="lineNoCov">              0 :         $behavior-&gt;setEnabled(true);                                                                                                     </span>
<span class="lineNum" id="container333"><a name="333"></a><a href="#333" id="line333">     333</a> </span><span class="lineNoCov">              0 :         $behavior-&gt;attach($this);                                                                                                        </span>
<span class="lineNum" id="container334"><a name="334"></a><a href="#334" id="line334">     334</a> </span><span class="lineNoCov">              0 :         return $this-&gt;_m[$name]=$behavior;                                                                                               </span>
<span class="lineNum" id="container335"><a name="335"></a><a href="#335" id="line335">     335</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container336"><a name="336"></a><a href="#336" id="line336">     336</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container337"><a name="337"></a><a href="#337" id="line337">     337</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container338"><a name="338"></a><a href="#338" id="line338">     338</a> </span>                :      * Detaches a behavior from the component.                                                                                           
<span class="lineNum" id="container339"><a name="339"></a><a href="#339" id="line339">     339</a> </span>                :      * The behavior's {@link IBehavior::detach} method will be invoked.                                                                  
<span class="lineNum" id="container340"><a name="340"></a><a href="#340" id="line340">     340</a> </span>                :      * @param string $name the behavior's name. It uniquely identifies the behavior.                                                     
<span class="lineNum" id="container341"><a name="341"></a><a href="#341" id="line341">     341</a> </span>                :      * @return IBehavior the detached behavior. Null if the behavior does not exist.                                                     
<span class="lineNum" id="container342"><a name="342"></a><a href="#342" id="line342">     342</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container343"><a name="343"></a><a href="#343" id="line343">     343</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container344"><a name="344"></a><a href="#344" id="line344">     344</a> </span>                :     public function detachBehavior($name)                                                                                                
<span class="lineNum" id="container345"><a name="345"></a><a href="#345" id="line345">     345</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container346"><a name="346"></a><a href="#346" id="line346">     346</a> </span><span class="lineNoCov">              0 :         if(isset($this-&gt;_m[$name]))                                                                                                      </span>
<span class="lineNum" id="container347"><a name="347"></a><a href="#347" id="line347">     347</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container348"><a name="348"></a><a href="#348" id="line348">     348</a> </span><span class="lineNoCov">              0 :             $this-&gt;_m[$name]-&gt;detach($this);                                                                                             </span>
<span class="lineNum" id="container349"><a name="349"></a><a href="#349" id="line349">     349</a> </span><span class="lineNoCov">              0 :             $behavior=$this-&gt;_m[$name];                                                                                                  </span>
<span class="lineNum" id="container350"><a name="350"></a><a href="#350" id="line350">     350</a> </span><span class="lineNoCov">              0 :             unset($this-&gt;_m[$name]);                                                                                                     </span>
<span class="lineNum" id="container351"><a name="351"></a><a href="#351" id="line351">     351</a> </span><span class="lineNoCov">              0 :             return $behavior;                                                                                                            </span>
<span class="lineNum" id="container352"><a name="352"></a><a href="#352" id="line352">     352</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container353"><a name="353"></a><a href="#353" id="line353">     353</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container354"><a name="354"></a><a href="#354" id="line354">     354</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container355"><a name="355"></a><a href="#355" id="line355">     355</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container356"><a name="356"></a><a href="#356" id="line356">     356</a> </span>                :      * Enables all behaviors attached to this component.                                                                                 
<span class="lineNum" id="container357"><a name="357"></a><a href="#357" id="line357">     357</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container358"><a name="358"></a><a href="#358" id="line358">     358</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container359"><a name="359"></a><a href="#359" id="line359">     359</a> </span>                :     public function enableBehaviors()                                                                                                    
<span class="lineNum" id="container360"><a name="360"></a><a href="#360" id="line360">     360</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container361"><a name="361"></a><a href="#361" id="line361">     361</a> </span><span class="lineNoCov">              0 :         if($this-&gt;_m!==null)                                                                                                             </span>
<span class="lineNum" id="container362"><a name="362"></a><a href="#362" id="line362">     362</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container363"><a name="363"></a><a href="#363" id="line363">     363</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $behavior)                                                                                              </span>
<span class="lineNum" id="container364"><a name="364"></a><a href="#364" id="line364">     364</a> </span><span class="lineNoCov">              0 :                 $behavior-&gt;setEnabled(true);                                                                                             </span>
<span class="lineNum" id="container365"><a name="365"></a><a href="#365" id="line365">     365</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container366"><a name="366"></a><a href="#366" id="line366">     366</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container367"><a name="367"></a><a href="#367" id="line367">     367</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container368"><a name="368"></a><a href="#368" id="line368">     368</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container369"><a name="369"></a><a href="#369" id="line369">     369</a> </span>                :      * Disables all behaviors attached to this component.                                                                                
<span class="lineNum" id="container370"><a name="370"></a><a href="#370" id="line370">     370</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container371"><a name="371"></a><a href="#371" id="line371">     371</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container372"><a name="372"></a><a href="#372" id="line372">     372</a> </span>                :     public function disableBehaviors()                                                                                                   
<span class="lineNum" id="container373"><a name="373"></a><a href="#373" id="line373">     373</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container374"><a name="374"></a><a href="#374" id="line374">     374</a> </span><span class="lineNoCov">              0 :         if($this-&gt;_m!==null)                                                                                                             </span>
<span class="lineNum" id="container375"><a name="375"></a><a href="#375" id="line375">     375</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container376"><a name="376"></a><a href="#376" id="line376">     376</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_m as $behavior)                                                                                              </span>
<span class="lineNum" id="container377"><a name="377"></a><a href="#377" id="line377">     377</a> </span><span class="lineNoCov">              0 :                 $behavior-&gt;setEnabled(false);                                                                                            </span>
<span class="lineNum" id="container378"><a name="378"></a><a href="#378" id="line378">     378</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container379"><a name="379"></a><a href="#379" id="line379">     379</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container380"><a name="380"></a><a href="#380" id="line380">     380</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container381"><a name="381"></a><a href="#381" id="line381">     381</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container382"><a name="382"></a><a href="#382" id="line382">     382</a> </span>                :      * Enables an attached behavior.                                                                                                     
<span class="lineNum" id="container383"><a name="383"></a><a href="#383" id="line383">     383</a> </span>                :      * A behavior is only effective when it is enabled.                                                                                  
<span class="lineNum" id="container384"><a name="384"></a><a href="#384" id="line384">     384</a> </span>                :      * A behavior is enabled when first attached.                                                                                        
<span class="lineNum" id="container385"><a name="385"></a><a href="#385" id="line385">     385</a> </span>                :      * @param string $name the behavior's name. It uniquely identifies the behavior.                                                     
<span class="lineNum" id="container386"><a name="386"></a><a href="#386" id="line386">     386</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container387"><a name="387"></a><a href="#387" id="line387">     387</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container388"><a name="388"></a><a href="#388" id="line388">     388</a> </span>                :     public function enableBehavior($name)                                                                                                
<span class="lineNum" id="container389"><a name="389"></a><a href="#389" id="line389">     389</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container390"><a name="390"></a><a href="#390" id="line390">     390</a> </span><span class="lineNoCov">              0 :         if(isset($this-&gt;_m[$name]))                                                                                                      </span>
<span class="lineNum" id="container391"><a name="391"></a><a href="#391" id="line391">     391</a> </span><span class="lineNoCov">              0 :             $this-&gt;_m[$name]-&gt;setEnabled(true);                                                                                          </span>
<span class="lineNum" id="container392"><a name="392"></a><a href="#392" id="line392">     392</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container393"><a name="393"></a><a href="#393" id="line393">     393</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container394"><a name="394"></a><a href="#394" id="line394">     394</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container395"><a name="395"></a><a href="#395" id="line395">     395</a> </span>                :      * Disables an attached behavior.                                                                                                    
<span class="lineNum" id="container396"><a name="396"></a><a href="#396" id="line396">     396</a> </span>                :      * A behavior is only effective when it is enabled.                                                                                  
<span class="lineNum" id="container397"><a name="397"></a><a href="#397" id="line397">     397</a> </span>                :      * @param string $name the behavior's name. It uniquely identifies the behavior.                                                     
<span class="lineNum" id="container398"><a name="398"></a><a href="#398" id="line398">     398</a> </span>                :      * @since 1.0.2                                                                                                                      
<span class="lineNum" id="container399"><a name="399"></a><a href="#399" id="line399">     399</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container400"><a name="400"></a><a href="#400" id="line400">     400</a> </span>                :     public function disableBehavior($name)                                                                                               
<span class="lineNum" id="container401"><a name="401"></a><a href="#401" id="line401">     401</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container402"><a name="402"></a><a href="#402" id="line402">     402</a> </span><span class="lineNoCov">              0 :         if(isset($this-&gt;_m[$name]))                                                                                                      </span>
<span class="lineNum" id="container403"><a name="403"></a><a href="#403" id="line403">     403</a> </span><span class="lineNoCov">              0 :             $this-&gt;_m[$name]-&gt;setEnabled(false);                                                                                         </span>
<span class="lineNum" id="container404"><a name="404"></a><a href="#404" id="line404">     404</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container405"><a name="405"></a><a href="#405" id="line405">     405</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container406"><a name="406"></a><a href="#406" id="line406">     406</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container407"><a name="407"></a><a href="#407" id="line407">     407</a> </span>                :      * Determines whether a property is defined.                                                                                         
<span class="lineNum" id="container408"><a name="408"></a><a href="#408" id="line408">     408</a> </span>                :      * A property is defined if there is a getter or setter method                                                                       
<span class="lineNum" id="container409"><a name="409"></a><a href="#409" id="line409">     409</a> </span>                :      * defined in the class. Note, property names are case-insensitive.                                                                  
<span class="lineNum" id="container410"><a name="410"></a><a href="#410" id="line410">     410</a> </span>                :      * @param string $name the property name                                                                                             
<span class="lineNum" id="container411"><a name="411"></a><a href="#411" id="line411">     411</a> </span>                :      * @return boolean whether the property is defined                                                                                   
<span class="lineNum" id="container412"><a name="412"></a><a href="#412" id="line412">     412</a> </span>                :      * @see canGetProperty                                                                                                               
<span class="lineNum" id="container413"><a name="413"></a><a href="#413" id="line413">     413</a> </span>                :      * @see canSetProperty                                                                                                               
<span class="lineNum" id="container414"><a name="414"></a><a href="#414" id="line414">     414</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container415"><a name="415"></a><a href="#415" id="line415">     415</a> </span>                :     public function hasProperty($name)                                                                                                   
<span class="lineNum" id="container416"><a name="416"></a><a href="#416" id="line416">     416</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container417"><a name="417"></a><a href="#417" id="line417">     417</a> </span><span class="lineNoCov">              0 :         return method_exists($this,'get'.$name) || method_exists($this,'set'.$name);                                                     </span>
<span class="lineNum" id="container418"><a name="418"></a><a href="#418" id="line418">     418</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container419"><a name="419"></a><a href="#419" id="line419">     419</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container420"><a name="420"></a><a href="#420" id="line420">     420</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container421"><a name="421"></a><a href="#421" id="line421">     421</a> </span>                :      * Determines whether a property can be read.                                                                                        
<span class="lineNum" id="container422"><a name="422"></a><a href="#422" id="line422">     422</a> </span>                :      * A property can be read if the class has a getter method                                                                           
<span class="lineNum" id="container423"><a name="423"></a><a href="#423" id="line423">     423</a> </span>                :      * for the property name. Note, property name is case-insensitive.                                                                   
<span class="lineNum" id="container424"><a name="424"></a><a href="#424" id="line424">     424</a> </span>                :      * @param string $name the property name                                                                                             
<span class="lineNum" id="container425"><a name="425"></a><a href="#425" id="line425">     425</a> </span>                :      * @return boolean whether the property can be read                                                                                  
<span class="lineNum" id="container426"><a name="426"></a><a href="#426" id="line426">     426</a> </span>                :      * @see canSetProperty                                                                                                               
<span class="lineNum" id="container427"><a name="427"></a><a href="#427" id="line427">     427</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container428"><a name="428"></a><a href="#428" id="line428">     428</a> </span>                :     public function canGetProperty($name)                                                                                                
<span class="lineNum" id="container429"><a name="429"></a><a href="#429" id="line429">     429</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container430"><a name="430"></a><a href="#430" id="line430">     430</a> </span><span class="lineNoCov">              0 :         return method_exists($this,'get'.$name);                                                                                         </span>
<span class="lineNum" id="container431"><a name="431"></a><a href="#431" id="line431">     431</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container432"><a name="432"></a><a href="#432" id="line432">     432</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container433"><a name="433"></a><a href="#433" id="line433">     433</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container434"><a name="434"></a><a href="#434" id="line434">     434</a> </span>                :      * Determines whether a property can be set.                                                                                         
<span class="lineNum" id="container435"><a name="435"></a><a href="#435" id="line435">     435</a> </span>                :      * A property can be written if the class has a setter method                                                                        
<span class="lineNum" id="container436"><a name="436"></a><a href="#436" id="line436">     436</a> </span>                :      * for the property name. Note, property name is case-insensitive.                                                                   
<span class="lineNum" id="container437"><a name="437"></a><a href="#437" id="line437">     437</a> </span>                :      * @param string $name the property name                                                                                             
<span class="lineNum" id="container438"><a name="438"></a><a href="#438" id="line438">     438</a> </span>                :      * @return boolean whether the property can be written                                                                               
<span class="lineNum" id="container439"><a name="439"></a><a href="#439" id="line439">     439</a> </span>                :      * @see canGetProperty                                                                                                               
<span class="lineNum" id="container440"><a name="440"></a><a href="#440" id="line440">     440</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container441"><a name="441"></a><a href="#441" id="line441">     441</a> </span>                :     public function canSetProperty($name)                                                                                                
<span class="lineNum" id="container442"><a name="442"></a><a href="#442" id="line442">     442</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container443"><a name="443"></a><a href="#443" id="line443">     443</a> </span><span class="lineNoCov">              0 :         return method_exists($this,'set'.$name);                                                                                         </span>
<span class="lineNum" id="container444"><a name="444"></a><a href="#444" id="line444">     444</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container445"><a name="445"></a><a href="#445" id="line445">     445</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container446"><a name="446"></a><a href="#446" id="line446">     446</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container447"><a name="447"></a><a href="#447" id="line447">     447</a> </span>                :      * Determines whether an event is defined.                                                                                           
<span class="lineNum" id="container448"><a name="448"></a><a href="#448" id="line448">     448</a> </span>                :      * An event is defined if the class has a method named like 'onXXX'.                                                                 
<span class="lineNum" id="container449"><a name="449"></a><a href="#449" id="line449">     449</a> </span>                :      * Note, event name is case-insensitive.                                                                                             
<span class="lineNum" id="container450"><a name="450"></a><a href="#450" id="line450">     450</a> </span>                :      * @param string $name the event name                                                                                                
<span class="lineNum" id="container451"><a name="451"></a><a href="#451" id="line451">     451</a> </span>                :      * @return boolean whether an event is defined                                                                                       
<span class="lineNum" id="container452"><a name="452"></a><a href="#452" id="line452">     452</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container453"><a name="453"></a><a href="#453" id="line453">     453</a> </span>                :     public function hasEvent($name)                                                                                                      
<span class="lineNum" id="container454"><a name="454"></a><a href="#454" id="line454">     454</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container455"><a name="455"></a><a href="#455" id="line455">     455</a> </span><span class="lineNoCov">              0 :         return !strncasecmp($name,'on',2) &amp;&amp; method_exists($this,$name);                                                                 </span>
<span class="lineNum" id="container456"><a name="456"></a><a href="#456" id="line456">     456</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container457"><a name="457"></a><a href="#457" id="line457">     457</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container458"><a name="458"></a><a href="#458" id="line458">     458</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container459"><a name="459"></a><a href="#459" id="line459">     459</a> </span>                :      * Checks whether the named event has attached handlers.                                                                             
<span class="lineNum" id="container460"><a name="460"></a><a href="#460" id="line460">     460</a> </span>                :      * @param string $name the event name                                                                                                
<span class="lineNum" id="container461"><a name="461"></a><a href="#461" id="line461">     461</a> </span>                :      * @return boolean whether an event has been attached one or several handlers                                                        
<span class="lineNum" id="container462"><a name="462"></a><a href="#462" id="line462">     462</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container463"><a name="463"></a><a href="#463" id="line463">     463</a> </span>                :     public function hasEventHandler($name)                                                                                               
<span class="lineNum" id="container464"><a name="464"></a><a href="#464" id="line464">     464</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container465"><a name="465"></a><a href="#465" id="line465">     465</a> </span><span class="lineNoCov">              0 :         $name=strtolower($name);                                                                                                         </span>
<span class="lineNum" id="container466"><a name="466"></a><a href="#466" id="line466">     466</a> </span><span class="lineNoCov">              0 :         return isset($this-&gt;_e[$name]) &amp;&amp; $this-&gt;_e[$name]-&gt;getCount()&gt;0;                                                                </span>
<span class="lineNum" id="container467"><a name="467"></a><a href="#467" id="line467">     467</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container468"><a name="468"></a><a href="#468" id="line468">     468</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container469"><a name="469"></a><a href="#469" id="line469">     469</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container470"><a name="470"></a><a href="#470" id="line470">     470</a> </span>                :      * Returns the list of attached event handlers for an event.                                                                         
<span class="lineNum" id="container471"><a name="471"></a><a href="#471" id="line471">     471</a> </span>                :      * @param string $name the event name                                                                                                
<span class="lineNum" id="container472"><a name="472"></a><a href="#472" id="line472">     472</a> </span>                :      * @return CList list of attached event handlers for the event                                                                       
<span class="lineNum" id="container473"><a name="473"></a><a href="#473" id="line473">     473</a> </span>                :      * @throws CException if the event is not defined                                                                                    
<span class="lineNum" id="container474"><a name="474"></a><a href="#474" id="line474">     474</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container475"><a name="475"></a><a href="#475" id="line475">     475</a> </span>                :     public function getEventHandlers($name)                                                                                              
<span class="lineNum" id="container476"><a name="476"></a><a href="#476" id="line476">     476</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container477"><a name="477"></a><a href="#477" id="line477">     477</a> </span><span class="lineNoCov">              0 :         if($this-&gt;hasEvent($name))                                                                                                       </span>
<span class="lineNum" id="container478"><a name="478"></a><a href="#478" id="line478">     478</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container479"><a name="479"></a><a href="#479" id="line479">     479</a> </span><span class="lineNoCov">              0 :             $name=strtolower($name);                                                                                                     </span>
<span class="lineNum" id="container480"><a name="480"></a><a href="#480" id="line480">     480</a> </span><span class="lineNoCov">              0 :             if(!isset($this-&gt;_e[$name]))                                                                                                 </span>
<span class="lineNum" id="container481"><a name="481"></a><a href="#481" id="line481">     481</a> </span><span class="lineNoCov">              0 :                 $this-&gt;_e[$name]=new CList;                                                                                              </span>
<span class="lineNum" id="container482"><a name="482"></a><a href="#482" id="line482">     482</a> </span><span class="lineNoCov">              0 :             return $this-&gt;_e[$name];                                                                                                     </span>
<span class="lineNum" id="container483"><a name="483"></a><a href="#483" id="line483">     483</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container484"><a name="484"></a><a href="#484" id="line484">     484</a> </span>                :         else                                                                                                                             
<span class="lineNum" id="container485"><a name="485"></a><a href="#485" id="line485">     485</a> </span><span class="lineNoCov">              0 :             throw new CException(Yii::t('yii','Event &quot;{class}.{event}&quot; is not defined.',                                                 </span>
<span class="lineNum" id="container486"><a name="486"></a><a href="#486" id="line486">     486</a> </span><span class="lineNoCov">              0 :                 array('{class}'=&gt;get_class($this), '{event}'=&gt;$name)));                                                                  </span>
<span class="lineNum" id="container487"><a name="487"></a><a href="#487" id="line487">     487</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container488"><a name="488"></a><a href="#488" id="line488">     488</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container489"><a name="489"></a><a href="#489" id="line489">     489</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container490"><a name="490"></a><a href="#490" id="line490">     490</a> </span>                :      * Attaches an event handler to an event.                                                                                            
<span class="lineNum" id="container491"><a name="491"></a><a href="#491" id="line491">     491</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container492"><a name="492"></a><a href="#492" id="line492">     492</a> </span>                :      * An event handler must be a valid PHP callback, i.e., a string referring to                                                        
<span class="lineNum" id="container493"><a name="493"></a><a href="#493" id="line493">     493</a> </span>                :      * a global function name, or an array containing two elements with                                                                  
<span class="lineNum" id="container494"><a name="494"></a><a href="#494" id="line494">     494</a> </span>                :      * the first element being an object and the second element a method name                                                            
<span class="lineNum" id="container495"><a name="495"></a><a href="#495" id="line495">     495</a> </span>                :      * of the object.                                                                                                                    
<span class="lineNum" id="container496"><a name="496"></a><a href="#496" id="line496">     496</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container497"><a name="497"></a><a href="#497" id="line497">     497</a> </span>                :      * An event handler must be defined with the following signature,                                                                    
<span class="lineNum" id="container498"><a name="498"></a><a href="#498" id="line498">     498</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container499"><a name="499"></a><a href="#499" id="line499">     499</a> </span>                :      * function handlerName($event) {}                                                                                                   
<span class="lineNum" id="container500"><a name="500"></a><a href="#500" id="line500">     500</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container501"><a name="501"></a><a href="#501" id="line501">     501</a> </span>                :      * where $event includes parameters associated with the event.                                                                       
<span class="lineNum" id="container502"><a name="502"></a><a href="#502" id="line502">     502</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container503"><a name="503"></a><a href="#503" id="line503">     503</a> </span>                :      * This is a convenient method of attaching a handler to an event.                                                                   
<span class="lineNum" id="container504"><a name="504"></a><a href="#504" id="line504">     504</a> </span>                :      * It is equivalent to the following code:                                                                                           
<span class="lineNum" id="container505"><a name="505"></a><a href="#505" id="line505">     505</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container506"><a name="506"></a><a href="#506" id="line506">     506</a> </span>                :      * $component-&gt;getEventHandlers($eventName)-&gt;add($eventHandler);                                                                     
<span class="lineNum" id="container507"><a name="507"></a><a href="#507" id="line507">     507</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container508"><a name="508"></a><a href="#508" id="line508">     508</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container509"><a name="509"></a><a href="#509" id="line509">     509</a> </span>                :      * Using {@link getEventHandlers}, one can also specify the excution order                                                           
<span class="lineNum" id="container510"><a name="510"></a><a href="#510" id="line510">     510</a> </span>                :      * of multiple handlers attaching to the same event. For example:                                                                    
<span class="lineNum" id="container511"><a name="511"></a><a href="#511" id="line511">     511</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container512"><a name="512"></a><a href="#512" id="line512">     512</a> </span>                :      * $component-&gt;getEventHandlers($eventName)-&gt;insertAt(0,$eventHandler);                                                              
<span class="lineNum" id="container513"><a name="513"></a><a href="#513" id="line513">     513</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container514"><a name="514"></a><a href="#514" id="line514">     514</a> </span>                :      * makes the handler to be invoked first.                                                                                            
<span class="lineNum" id="container515"><a name="515"></a><a href="#515" id="line515">     515</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container516"><a name="516"></a><a href="#516" id="line516">     516</a> </span>                :      * @param string $name the event name                                                                                                
<span class="lineNum" id="container517"><a name="517"></a><a href="#517" id="line517">     517</a> </span>                :      * @param callback $handler the event handler                                                                                        
<span class="lineNum" id="container518"><a name="518"></a><a href="#518" id="line518">     518</a> </span>                :      * @throws CException if the event is not defined                                                                                    
<span class="lineNum" id="container519"><a name="519"></a><a href="#519" id="line519">     519</a> </span>                :      * @see detachEventHandler                                                                                                           
<span class="lineNum" id="container520"><a name="520"></a><a href="#520" id="line520">     520</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container521"><a name="521"></a><a href="#521" id="line521">     521</a> </span>                :     public function attachEventHandler($name,$handler)                                                                                   
<span class="lineNum" id="container522"><a name="522"></a><a href="#522" id="line522">     522</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container523"><a name="523"></a><a href="#523" id="line523">     523</a> </span><span class="lineNoCov">              0 :         $this-&gt;getEventHandlers($name)-&gt;add($handler);                                                                                   </span>
<span class="lineNum" id="container524"><a name="524"></a><a href="#524" id="line524">     524</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container525"><a name="525"></a><a href="#525" id="line525">     525</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container526"><a name="526"></a><a href="#526" id="line526">     526</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container527"><a name="527"></a><a href="#527" id="line527">     527</a> </span>                :      * Detaches an existing event handler.                                                                                               
<span class="lineNum" id="container528"><a name="528"></a><a href="#528" id="line528">     528</a> </span>                :      * This method is the opposite of {@link attachEventHandler}.                                                                        
<span class="lineNum" id="container529"><a name="529"></a><a href="#529" id="line529">     529</a> </span>                :      * @param string $name event name                                                                                                    
<span class="lineNum" id="container530"><a name="530"></a><a href="#530" id="line530">     530</a> </span>                :      * @param callback $handler the event handler to be removed                                                                          
<span class="lineNum" id="container531"><a name="531"></a><a href="#531" id="line531">     531</a> </span>                :      * @return boolean if the detachment process is successful                                                                           
<span class="lineNum" id="container532"><a name="532"></a><a href="#532" id="line532">     532</a> </span>                :      * @see attachEventHandler                                                                                                           
<span class="lineNum" id="container533"><a name="533"></a><a href="#533" id="line533">     533</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container534"><a name="534"></a><a href="#534" id="line534">     534</a> </span>                :     public function detachEventHandler($name,$handler)                                                                                   
<span class="lineNum" id="container535"><a name="535"></a><a href="#535" id="line535">     535</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container536"><a name="536"></a><a href="#536" id="line536">     536</a> </span><span class="lineNoCov">              0 :         if($this-&gt;hasEventHandler($name))                                                                                                </span>
<span class="lineNum" id="container537"><a name="537"></a><a href="#537" id="line537">     537</a> </span><span class="lineNoCov">              0 :             return $this-&gt;getEventHandlers($name)-&gt;remove($handler)!==false;                                                             </span>
<span class="lineNum" id="container538"><a name="538"></a><a href="#538" id="line538">     538</a> </span>                :         else                                                                                                                             
<span class="lineNum" id="container539"><a name="539"></a><a href="#539" id="line539">     539</a> </span><span class="lineNoCov">              0 :             return false;                                                                                                                </span>
<span class="lineNum" id="container540"><a name="540"></a><a href="#540" id="line540">     540</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container541"><a name="541"></a><a href="#541" id="line541">     541</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container542"><a name="542"></a><a href="#542" id="line542">     542</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container543"><a name="543"></a><a href="#543" id="line543">     543</a> </span>                :      * Raises an event.                                                                                                                  
<span class="lineNum" id="container544"><a name="544"></a><a href="#544" id="line544">     544</a> </span>                :      * This method represents the happening of an event. It invokes                                                                      
<span class="lineNum" id="container545"><a name="545"></a><a href="#545" id="line545">     545</a> </span>                :      * all attached handlers for the event.                                                                                              
<span class="lineNum" id="container546"><a name="546"></a><a href="#546" id="line546">     546</a> </span>                :      * @param string $name the event name                                                                                                
<span class="lineNum" id="container547"><a name="547"></a><a href="#547" id="line547">     547</a> </span>                :      * @param CEvent $event the event parameter                                                                                          
<span class="lineNum" id="container548"><a name="548"></a><a href="#548" id="line548">     548</a> </span>                :      * @throws CException if the event is undefined or an event handler is invalid.                                                      
<span class="lineNum" id="container549"><a name="549"></a><a href="#549" id="line549">     549</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container550"><a name="550"></a><a href="#550" id="line550">     550</a> </span>                :     public function raiseEvent($name,$event)                                                                                             
<span class="lineNum" id="container551"><a name="551"></a><a href="#551" id="line551">     551</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container552"><a name="552"></a><a href="#552" id="line552">     552</a> </span><span class="lineNoCov">              0 :         $name=strtolower($name);                                                                                                         </span>
<span class="lineNum" id="container553"><a name="553"></a><a href="#553" id="line553">     553</a> </span><span class="lineNoCov">              0 :         if(isset($this-&gt;_e[$name]))                                                                                                      </span>
<span class="lineNum" id="container554"><a name="554"></a><a href="#554" id="line554">     554</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container555"><a name="555"></a><a href="#555" id="line555">     555</a> </span><span class="lineNoCov">              0 :             foreach($this-&gt;_e[$name] as $handler)                                                                                        </span>
<span class="lineNum" id="container556"><a name="556"></a><a href="#556" id="line556">     556</a> </span>                :             {                                                                                                                            
<span class="lineNum" id="container557"><a name="557"></a><a href="#557" id="line557">     557</a> </span><span class="lineNoCov">              0 :                 if(is_string($handler))                                                                                                  </span>
<span class="lineNum" id="container558"><a name="558"></a><a href="#558" id="line558">     558</a> </span><span class="lineNoCov">              0 :                     call_user_func($handler,$event);                                                                                     </span>
<span class="lineNum" id="container559"><a name="559"></a><a href="#559" id="line559">     559</a> </span><span class="lineNoCov">              0 :                 else if(is_callable($handler,true))                                                                                      </span>
<span class="lineNum" id="container560"><a name="560"></a><a href="#560" id="line560">     560</a> </span><span class="lineNoCov">              0 :                 {                                                                                                                        </span>
<span class="lineNum" id="container561"><a name="561"></a><a href="#561" id="line561">     561</a> </span><span class="lineNoCov">              0 :                     if(is_array($handler))                                                                                               </span>
<span class="lineNum" id="container562"><a name="562"></a><a href="#562" id="line562">     562</a> </span><span class="lineNoCov">              0 :                     {                                                                                                                    </span>
<span class="lineNum" id="container563"><a name="563"></a><a href="#563" id="line563">     563</a> </span>                :                         // an array: 0 - object, 1 - method name                                                                         
<span class="lineNum" id="container564"><a name="564"></a><a href="#564" id="line564">     564</a> </span><span class="lineNoCov">              0 :                         list($object,$method)=$handler;                                                                                  </span>
<span class="lineNum" id="container565"><a name="565"></a><a href="#565" id="line565">     565</a> </span><span class="lineNoCov">              0 :                         if(is_string($object))    // static method call                                                                  </span>
<span class="lineNum" id="container566"><a name="566"></a><a href="#566" id="line566">     566</a> </span><span class="lineNoCov">              0 :                             call_user_func($handler,$event);                                                                             </span>
<span class="lineNum" id="container567"><a name="567"></a><a href="#567" id="line567">     567</a> </span><span class="lineNoCov">              0 :                         else if(method_exists($object,$method))                                                                          </span>
<span class="lineNum" id="container568"><a name="568"></a><a href="#568" id="line568">     568</a> </span><span class="lineNoCov">              0 :                             $object-&gt;$method($event);                                                                                    </span>
<span class="lineNum" id="container569"><a name="569"></a><a href="#569" id="line569">     569</a> </span>                :                         else                                                                                                             
<span class="lineNum" id="container570"><a name="570"></a><a href="#570" id="line570">     570</a> </span><span class="lineNoCov">              0 :                             throw new CException(Yii::t('yii','Event &quot;{class}.{event}&quot; is attached with an invalid handler &quot;{handler}&quot;.',</span>
<span class="lineNum" id="container571"><a name="571"></a><a href="#571" id="line571">     571</a> </span><span class="lineNoCov">              0 :                                 array('{class}'=&gt;get_class($this), '{event}'=&gt;$name, '{handler}'=&gt;$handler[1])));                        </span>
<span class="lineNum" id="container572"><a name="572"></a><a href="#572" id="line572">     572</a> </span><span class="lineNoCov">              0 :                     }                                                                                                                    </span>
<span class="lineNum" id="container573"><a name="573"></a><a href="#573" id="line573">     573</a> </span>                :                     else // PHP 5.3: anonymous function                                                                                  
<span class="lineNum" id="container574"><a name="574"></a><a href="#574" id="line574">     574</a> </span><span class="lineNoCov">              0 :                         call_user_func($handler,$event);                                                                                 </span>
<span class="lineNum" id="container575"><a name="575"></a><a href="#575" id="line575">     575</a> </span><span class="lineNoCov">              0 :                 }                                                                                                                        </span>
<span class="lineNum" id="container576"><a name="576"></a><a href="#576" id="line576">     576</a> </span>                :                 else                                                                                                                     
<span class="lineNum" id="container577"><a name="577"></a><a href="#577" id="line577">     577</a> </span><span class="lineNoCov">              0 :                     throw new CException(Yii::t('yii','Event &quot;{class}.{event}&quot; is attached with an invalid handler &quot;{handler}&quot;.',        </span>
<span class="lineNum" id="container578"><a name="578"></a><a href="#578" id="line578">     578</a> </span><span class="lineNoCov">              0 :                         array('{class}'=&gt;get_class($this), '{event}'=&gt;$name, '{handler}'=&gt;gettype($handler))));                          </span>
<span class="lineNum" id="container579"><a name="579"></a><a href="#579" id="line579">     579</a> </span>                :                 // stop further handling if param.handled is set true                                                                    
<span class="lineNum" id="container580"><a name="580"></a><a href="#580" id="line580">     580</a> </span><span class="lineNoCov">              0 :                 if(($event instanceof CEvent) &amp;&amp; $event-&gt;handled)                                                                        </span>
<span class="lineNum" id="container581"><a name="581"></a><a href="#581" id="line581">     581</a> </span><span class="lineNoCov">              0 :                     return;                                                                                                              </span>
<span class="lineNum" id="container582"><a name="582"></a><a href="#582" id="line582">     582</a> </span><span class="lineNoCov">              0 :             }                                                                                                                            </span>
<span class="lineNum" id="container583"><a name="583"></a><a href="#583" id="line583">     583</a> </span><span class="lineNoCov">              0 :         }                                                                                                                                </span>
<span class="lineNum" id="container584"><a name="584"></a><a href="#584" id="line584">     584</a> </span><span class="lineNoCov">              0 :         else if(YII_DEBUG &amp;&amp; !$this-&gt;hasEvent($name))                                                                                    </span>
<span class="lineNum" id="container585"><a name="585"></a><a href="#585" id="line585">     585</a> </span><span class="lineNoCov">              0 :             throw new CException(Yii::t('yii','Event &quot;{class}.{event}&quot; is not defined.',                                                 </span>
<span class="lineNum" id="container586"><a name="586"></a><a href="#586" id="line586">     586</a> </span><span class="lineNoCov">              0 :                 array('{class}'=&gt;get_class($this), '{event}'=&gt;$name)));                                                                  </span>
<span class="lineNum" id="container587"><a name="587"></a><a href="#587" id="line587">     587</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container588"><a name="588"></a><a href="#588" id="line588">     588</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container589"><a name="589"></a><a href="#589" id="line589">     589</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container590"><a name="590"></a><a href="#590" id="line590">     590</a> </span>                :      * Evaluates a PHP expression or callback under the context of this component.                                                       
<span class="lineNum" id="container591"><a name="591"></a><a href="#591" id="line591">     591</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container592"><a name="592"></a><a href="#592" id="line592">     592</a> </span>                :      * Valid PHP callback can be class method name in the form of                                                                        
<span class="lineNum" id="container593"><a name="593"></a><a href="#593" id="line593">     593</a> </span>                :      * array(ClassName/Object, MethodName), or anonymous function (only available in PHP 5.3.0 or above).                                
<span class="lineNum" id="container594"><a name="594"></a><a href="#594" id="line594">     594</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container595"><a name="595"></a><a href="#595" id="line595">     595</a> </span>                :      * If a PHP callback is used, the corresponding function/method signature should be                                                  
<span class="lineNum" id="container596"><a name="596"></a><a href="#596" id="line596">     596</a> </span>                :      * &lt;pre&gt;                                                                                                                             
<span class="lineNum" id="container597"><a name="597"></a><a href="#597" id="line597">     597</a> </span>                :      * function foo($param1, $param2, ..., $component) { ... }                                                                           
<span class="lineNum" id="container598"><a name="598"></a><a href="#598" id="line598">     598</a> </span>                :      * &lt;/pre&gt;                                                                                                                            
<span class="lineNum" id="container599"><a name="599"></a><a href="#599" id="line599">     599</a> </span>                :      * where the array elements in the second parameter to this method will be passed                                                    
<span class="lineNum" id="container600"><a name="600"></a><a href="#600" id="line600">     600</a> </span>                :      * to the callback as $param1, $param2, ...; and the last parameter will be the component itself.                                    
<span class="lineNum" id="container601"><a name="601"></a><a href="#601" id="line601">     601</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container602"><a name="602"></a><a href="#602" id="line602">     602</a> </span>                :      * If a PHP expression is used, the second parameter will be &quot;extracted&quot; into PHP variables                                          
<span class="lineNum" id="container603"><a name="603"></a><a href="#603" id="line603">     603</a> </span>                :      * that can be directly accessed in the expression. See {@link http://us.php.net/manual/en/function.extract.php PHP extract}         
<span class="lineNum" id="container604"><a name="604"></a><a href="#604" id="line604">     604</a> </span>                :      * for more details. In the expression, the component object can be accessed using $this.                                            
<span class="lineNum" id="container605"><a name="605"></a><a href="#605" id="line605">     605</a> </span>                :      *                                                                                                                                   
<span class="lineNum" id="container606"><a name="606"></a><a href="#606" id="line606">     606</a> </span>                :      * @param mixed $_expression_ a PHP expression or PHP callback to be evaluated.                                                      
<span class="lineNum" id="container607"><a name="607"></a><a href="#607" id="line607">     607</a> </span>                :      * @param array $_data_ additional parameters to be passed to the above expression/callback.                                         
<span class="lineNum" id="container608"><a name="608"></a><a href="#608" id="line608">     608</a> </span>                :      * @return mixed the expression result                                                                                               
<span class="lineNum" id="container609"><a name="609"></a><a href="#609" id="line609">     609</a> </span>                :      * @since 1.1.0                                                                                                                      
<span class="lineNum" id="container610"><a name="610"></a><a href="#610" id="line610">     610</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container611"><a name="611"></a><a href="#611" id="line611">     611</a> </span>                :     public function evaluateExpression($_expression_,$_data_=array())                                                                    
<span class="lineNum" id="container612"><a name="612"></a><a href="#612" id="line612">     612</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container613"><a name="613"></a><a href="#613" id="line613">     613</a> </span><span class="lineNoCov">              0 :         if(is_string($_expression_))                                                                                                     </span>
<span class="lineNum" id="container614"><a name="614"></a><a href="#614" id="line614">     614</a> </span><span class="lineNoCov">              0 :         {                                                                                                                                </span>
<span class="lineNum" id="container615"><a name="615"></a><a href="#615" id="line615">     615</a> </span><span class="lineNoCov">              0 :             extract($_data_);                                                                                                            </span>
<span class="lineNum" id="container616"><a name="616"></a><a href="#616" id="line616">     616</a> </span><span class="lineNoCov">              0 :             return eval('return '.$_expression_.';');                                                                                    </span>
<span class="lineNum" id="container617"><a name="617"></a><a href="#617" id="line617">     617</a> </span><span class="lineDeadCode">                :         }                                                                                                                                </span>
<span class="lineNum" id="container618"><a name="618"></a><a href="#618" id="line618">     618</a> </span>                :         else                                                                                                                             
<span class="lineNum" id="container619"><a name="619"></a><a href="#619" id="line619">     619</a> </span>                :         {                                                                                                                                
<span class="lineNum" id="container620"><a name="620"></a><a href="#620" id="line620">     620</a> </span><span class="lineNoCov">              0 :             $_data_[]=$this;                                                                                                             </span>
<span class="lineNum" id="container621"><a name="621"></a><a href="#621" id="line621">     621</a> </span><span class="lineNoCov">              0 :             return call_user_func_array($_expression_, $_data_);                                                                         </span>
<span class="lineNum" id="container622"><a name="622"></a><a href="#622" id="line622">     622</a> </span>                :         }                                                                                                                                
<span class="lineNum" id="container623"><a name="623"></a><a href="#623" id="line623">     623</a> </span><span class="lineDeadCode">                :     }                                                                                                                                    </span>
<span class="lineNum" id="container624"><a name="624"></a><a href="#624" id="line624">     624</a> </span>                : }                                                                                                                                        
<span class="lineNum" id="container625"><a name="625"></a><a href="#625" id="line625">     625</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container626"><a name="626"></a><a href="#626" id="line626">     626</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container627"><a name="627"></a><a href="#627" id="line627">     627</a> </span>                : /**                                                                                                                                      
<span class="lineNum" id="container628"><a name="628"></a><a href="#628" id="line628">     628</a> </span>                :  * CEvent is the base class for all event classes.                                                                                       
<span class="lineNum" id="container629"><a name="629"></a><a href="#629" id="line629">     629</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container630"><a name="630"></a><a href="#630" id="line630">     630</a> </span>                :  * It encapsulates the parameters associated with an event.                                                                              
<span class="lineNum" id="container631"><a name="631"></a><a href="#631" id="line631">     631</a> </span>                :  * The {@link sender} property describes who raises the event.                                                                           
<span class="lineNum" id="container632"><a name="632"></a><a href="#632" id="line632">     632</a> </span>                :  * And the {@link handled} property indicates if the event is handled.                                                                   
<span class="lineNum" id="container633"><a name="633"></a><a href="#633" id="line633">     633</a> </span>                :  * If an event handler sets {@link handled} to true, those handlers                                                                      
<span class="lineNum" id="container634"><a name="634"></a><a href="#634" id="line634">     634</a> </span>                :  * that are not invoked yet will not be invoked anymore.                                                                                 
<span class="lineNum" id="container635"><a name="635"></a><a href="#635" id="line635">     635</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container636"><a name="636"></a><a href="#636" id="line636">     636</a> </span>                :  * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;                                                                                               
<span class="lineNum" id="container637"><a name="637"></a><a href="#637" id="line637">     637</a> </span>                :  * @version $Id: CComponent.php 2639 2010-11-11 16:12:42Z qiang.xue $                                                                    
<span class="lineNum" id="container638"><a name="638"></a><a href="#638" id="line638">     638</a> </span>                :  * @package system.base                                                                                                                  
<span class="lineNum" id="container639"><a name="639"></a><a href="#639" id="line639">     639</a> </span>                :  * @since 1.0                                                                                                                            
<span class="lineNum" id="container640"><a name="640"></a><a href="#640" id="line640">     640</a> </span>                :  */                                                                                                                                      
<span class="lineNum" id="container641"><a name="641"></a><a href="#641" id="line641">     641</a> </span>                : class CEvent extends CComponent                                                                                                          
<span class="lineNum" id="container642"><a name="642"></a><a href="#642" id="line642">     642</a> </span>                : {                                                                                                                                        
<span class="lineNum" id="container643"><a name="643"></a><a href="#643" id="line643">     643</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container644"><a name="644"></a><a href="#644" id="line644">     644</a> </span>                :      * @var object the sender of this event                                                                                              
<span class="lineNum" id="container645"><a name="645"></a><a href="#645" id="line645">     645</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container646"><a name="646"></a><a href="#646" id="line646">     646</a> </span>                :     public $sender;                                                                                                                      
<span class="lineNum" id="container647"><a name="647"></a><a href="#647" id="line647">     647</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container648"><a name="648"></a><a href="#648" id="line648">     648</a> </span>                :      * @var boolean whether the event is handled. Defaults to false.                                                                     
<span class="lineNum" id="container649"><a name="649"></a><a href="#649" id="line649">     649</a> </span>                :      * When a handler sets this true, the rest of the uninvoked event handlers will not be invoked anymore.                              
<span class="lineNum" id="container650"><a name="650"></a><a href="#650" id="line650">     650</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container651"><a name="651"></a><a href="#651" id="line651">     651</a> </span>                :     public $handled=false;                                                                                                               
<span class="lineNum" id="container652"><a name="652"></a><a href="#652" id="line652">     652</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container653"><a name="653"></a><a href="#653" id="line653">     653</a> </span>                :     /**                                                                                                                                  
<span class="lineNum" id="container654"><a name="654"></a><a href="#654" id="line654">     654</a> </span>                :      * Constructor.                                                                                                                      
<span class="lineNum" id="container655"><a name="655"></a><a href="#655" id="line655">     655</a> </span>                :      * @param mixed $sender sender of the event                                                                                          
<span class="lineNum" id="container656"><a name="656"></a><a href="#656" id="line656">     656</a> </span>                :      */                                                                                                                                  
<span class="lineNum" id="container657"><a name="657"></a><a href="#657" id="line657">     657</a> </span>                :     public function __construct($sender=null)                                                                                            
<span class="lineNum" id="container658"><a name="658"></a><a href="#658" id="line658">     658</a> </span>                :     {                                                                                                                                    
<span class="lineNum" id="container659"><a name="659"></a><a href="#659" id="line659">     659</a> </span><span class="lineNoCov">              0 :         $this-&gt;sender=$sender;                                                                                                           </span>
<span class="lineNum" id="container660"><a name="660"></a><a href="#660" id="line660">     660</a> </span><span class="lineNoCov">              0 :     }                                                                                                                                    </span>
<span class="lineNum" id="container661"><a name="661"></a><a href="#661" id="line661">     661</a> </span>                : }                                                                                                                                        
<span class="lineNum" id="container662"><a name="662"></a><a href="#662" id="line662">     662</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container663"><a name="663"></a><a href="#663" id="line663">     663</a> </span>                :                                                                                                                                          
<span class="lineNum" id="container664"><a name="664"></a><a href="#664" id="line664">     664</a> </span>                : /**                                                                                                                                      
<span class="lineNum" id="container665"><a name="665"></a><a href="#665" id="line665">     665</a> </span>                :  * CEnumerable is the base class for all enumerable types.                                                                               
<span class="lineNum" id="container666"><a name="666"></a><a href="#666" id="line666">     666</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container667"><a name="667"></a><a href="#667" id="line667">     667</a> </span>                :  * To define an enumerable type, extend CEnumberable and define string constants.                                                        
<span class="lineNum" id="container668"><a name="668"></a><a href="#668" id="line668">     668</a> </span>                :  * Each constant represents an enumerable value.                                                                                         
<span class="lineNum" id="container669"><a name="669"></a><a href="#669" id="line669">     669</a> </span>                :  * The constant name must be the same as the constant value.                                                                             
<span class="lineNum" id="container670"><a name="670"></a><a href="#670" id="line670">     670</a> </span>                :  * For example,                                                                                                                          
<span class="lineNum" id="container671"><a name="671"></a><a href="#671" id="line671">     671</a> </span>                :  * &lt;pre&gt;                                                                                                                                 
<span class="lineNum" id="container672"><a name="672"></a><a href="#672" id="line672">     672</a> </span>                :  * class TextAlign extends CEnumerable                                                                                                   
<span class="lineNum" id="container673"><a name="673"></a><a href="#673" id="line673">     673</a> </span>                :  * {                                                                                                                                     
<span class="lineNum" id="container674"><a name="674"></a><a href="#674" id="line674">     674</a> </span>                :  *     const Left='Left';                                                                                                                
<span class="lineNum" id="container675"><a name="675"></a><a href="#675" id="line675">     675</a> </span>                :  *     const Right='Right';                                                                                                              
<span class="lineNum" id="container676"><a name="676"></a><a href="#676" id="line676">     676</a> </span>                :  * }                                                                                                                                     
<span class="lineNum" id="container677"><a name="677"></a><a href="#677" id="line677">     677</a> </span>                :  * &lt;/pre&gt;                                                                                                                                
<span class="lineNum" id="container678"><a name="678"></a><a href="#678" id="line678">     678</a> </span>                :  * Then, one can use the enumerable values such as TextAlign::Left and                                                                   
<span class="lineNum" id="container679"><a name="679"></a><a href="#679" id="line679">     679</a> </span>                :  * TextAlign::Right.                                                                                                                     
<span class="lineNum" id="container680"><a name="680"></a><a href="#680" id="line680">     680</a> </span>                :  *                                                                                                                                       
<span class="lineNum" id="container681"><a name="681"></a><a href="#681" id="line681">     681</a> </span>                :  * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;                                                                                               
<span class="lineNum" id="container682"><a name="682"></a><a href="#682" id="line682">     682</a> </span>                :  * @version $Id: CComponent.php 2639 2010-11-11 16:12:42Z qiang.xue $                                                                    
<span class="lineNum" id="container683"><a name="683"></a><a href="#683" id="line683">     683</a> </span>                :  * @package system.base                                                                                                                  
<span class="lineNum" id="container684"><a name="684"></a><a href="#684" id="line684">     684</a> </span>                :  * @since 1.0                                                                                                                            
<span class="lineNum" id="container685"><a name="685"></a><a href="#685" id="line685">     685</a> </span>                :  */                                                                                                                                      
<span class="lineNum" id="container686"><a name="686"></a><a href="#686" id="line686">     686</a> </span>                : class CEnumerable                                                                                                                        
<span class="lineNum" id="container687"><a name="687"></a><a href="#687" id="line687">     687</a> </span>                : {                                                                                                                                        
<span class="lineNum" id="container688"><a name="688"></a><a href="#688" id="line688">     688</a> </span>                : }                                                                                                                                        

</pre>
        </td>
      </tr>
    </table>

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
      <tr><td class="versionInfo">Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.0.3</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.2-1ubuntu4.5</a> and PHPUnit 3.5.6 at Wed Jan 5 16:18:17 BRST 2011.</td></tr>
    </table>

    <br />

    <script type="text/javascript">
      //<![CDATA[
      $E = YAHOO.util.Event;
      YAHOO.namespace("phpunit.container");
      YAHOO.phpunit.container.panelsData = {
      "dummy": ""
      };

      YAHOO.phpunit.container.prepare = function (e) {
        var elemId = $E.getTarget(e).id;
        var line = elemId.substr(4);
        var panelId = "panel" + line;
        var containerId = "container" + line;

        var panelData = YAHOO.phpunit.container.panelsData[panelId];

        var panel = new YAHOO.widget.Panel(panelId, { visible:false, draggable:false, close:true } );
        panel.setHeader(panelData["header"]);
        panel.setBody(panelData["body"]);
        panel.setFooter(panelData["footer"]);
        panel.render(containerId);

        $E.addListener(elemId, "click", panel.show, panel, true);
        $E.removeListener(elemId, "mouseover");
      };

      function init() {
        var ypc = YAHOO.phpunit.container;
        for (var panelId in ypc.panelsData) {
          var elemId = "line" + panelId.substr(5);
          $E.addListener(elemId, "mouseover", ypc.prepare);
        }
      }

      $E.addListener(window, "load", init);
      //]]>
    </script>
  </body>
</html>
